﻿<%
	/*
	名称：付完款后跳转的页面
	功能：同服务器返回功能，商户可以在这个页面获取支付宝登陆会员的部分信息
	版本：2.0
	日期：2008-12-31
	作者：支付宝公司销售部技术支持团队
	联系：0571-26888888
	版权：支付宝公司
	 */
%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c-rt"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="com.yaodian100.mall.alipay.*"%>
<%@ page import="com.yaodian100.core.common.utils.ServerValue"%>
<%@ page import="com.yaodian100.mall.member.util.UserData"%>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>支付宝</title>
		<script type="text/javascript" charset="UTF-8" src="/js/jquery-1.3.2.min.js"></script>
		<script type="text/javascript" charset="UTF-8" src="/js/jquery-ui-1.7.2.custom.min.js"></script>
		<script language="javascript">
			$().ready(function(){
				$("#memberForm").submit();
			});
		</script>
	</head>
	<body>
		<%
			//合作者ID和安全校验码可以到src\com\alipay\config中的文件配置
			String partner = AlipayConfig.partnerID; //支付宝合作伙伴id (账户内提取)
			String privateKey = AlipayConfig.key; //支付宝安全校验码(账户内提取)
			//**********************************************************************************
			//如果您服务器不支持https交互，可以使用http的验证查询地址
			/*注意下面的注释，如果在测试的时候导致response等于空值的情况，请将下面一个注释，打开上面一个验证连接，另外检查本地端口，
			请挡开80或者443端口*/
			//String alipayNotifyURL = "https://www.alipay.com/cooperate/gateway.do?service=notify_verify"
			String alipayNotifyURL = "http://notify.alipay.com/trade/notify_query.do?"
					+ "partner="
					+ partner
					+ "&notify_id="
					+ request.getParameter("notify_id");
			//**********************************************************************************
			String sign = request.getParameter("sign");
			//获取支付宝ATN返回结果，true是正确的订单信息，false 是无效的
			String responseTxt = CheckURL.check(alipayNotifyURL);
			System.out.println(responseTxt);
			Map params = new HashMap();
			//获得POST 过来参数设置到新的params中
			Map requestParams = request.getParameterMap();
			for (Iterator iter = requestParams.keySet().iterator(); iter
					.hasNext();) {
				String name = (String) iter.next();
				System.out.println(1+"/"+name);
				if("redirect_url".equals(name)){
					continue;
				}
				//if("target_url".equals(name)){
					//continue;
				//}
				String[] values = (String[]) requestParams.get(name);
				System.out.println(2+"/"+values);
				String valueStr = "";
				for (int i = 0; i < values.length; i++) {
					valueStr = (i == values.length - 1) ? valueStr + values[i]
					: valueStr + values[i] + ",";
				}
				
				if("token".equals(name)){
					UserData userData=new UserData(request,response);
					userData.writeRawValue(UserData.NAME_YAODIAN100_ALIPAY_TOKEN,valueStr);
				}
				
				//乱码解决，这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化
				valueStr = new String(valueStr.getBytes("ISO-8859-1"), "GBK");
				params.put(name, valueStr);
			}			
			String mysign = SignatureHelper_return.sign(params,
					privateKey);
			System.out.println(mysign);
			System.out.println(request.getParameter("sign"));
			if (mysign.equals(request.getParameter("sign"))
					&& responseTxt.equals("true")) {
				//以下是会员共享的部分信息,一下以用户ID获取为例输出显示。您可以获取会员信息根据自己的业务需求集成此接口
				String get_userId = request.getParameter("user_id"); //用户ID 
				
				%>
				<div style="display:none">
				<form action="<%=ServerValue.getFrontContextPath()%>/alipayLogin.do" method="post" id="memberForm">
 				<input type="text" name="loginID" value="<%=get_userId%>"/>
           		<input type="text" name="mail" value="<%=request.getParameter("email")%>"/>
           		<input type="text" name="contactName" value="<%=new String(request.getParameter("real_name").getBytes("ISO-8859-1"), "GBK")%>"/>
		<c-rt:choose>
			<c-rt:when test="${empty target_url}">
				<input type="hidden" name="pathparam" value='${redirect_url}' />
			</c-rt:when>
			<c-rt:otherwise>
				<input type="hidden" name="pathparam" value='${target_url}' />
			</c-rt:otherwise>
		</c-rt:choose>
    			</form>
    			</div>
			<%}else {
				System.out.println(ServerValue.getFrontHostname());
				response.sendRedirect(ServerValue.getFrontHostname());
			}%>
	</body>
</html>